using System;
using System.Collections.Generic;
using System.Text;
using Ksibo.Dados;
using Ksibo.Modelo;
using NHibernate.Expression;
using NHibernate;

namespace Ksibo.Negocio
{
    class GerenciadorMensagens
    {
        public GerenciadorMensagens()
        {
        }

        public bool AtualizaMensagem(Mensagem msg)
        {
            return MensagemBD.AtualizaMensagem(msg);
        }
        public bool AtualizaListaMensagens(IList<Mensagem> mensagens)
        {
            return MensagemBD.AtualizaListaMensagem(mensagens);
        }

        public IList<Mensagem> GetMensagensByUsuarioDestino(int idUsuarioDestino)
        {
            return MensagemBD.BuscaMensagensPorExpressoes
                (Expression.Eq("IdUsuarioDestino", idUsuarioDestino));

        }
        public IList<Mensagem> GetMensagensByUsuarioDestinoNaoLidas(int idUsuarioDestino)
        {
            return MensagemBD.BuscaMensagensPorExpressoes
                (Expression.Eq("StatusMensagem", Definicoes.MSG_NAO_LIDA)
                , Expression.Eq("IdUsuarioDestino", idUsuarioDestino));

        }
        public IList<Mensagem> GetMensagensByTipo(int idUsuarioDestino, int tipo)
        {
            SimpleExpression[] expressoes = new SimpleExpression[2];
            expressoes[0] = Expression.Eq("IdUsuarioDestino", idUsuarioDestino);
            expressoes[1] = Expression.Eq("Tipo", tipo);
            return MensagemBD.BuscaMensagensPorExpressoes(expressoes);
        }
        public bool enviaMensagem(Mensagem msg)
        {
            return MensagemBD.MandaMensagem(msg);
        }
    }
}
